home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
10
/
9
/
DISK1095.ZIP
/
PAYBILLS.PRG
< prev
next >
Wrap
Text File
|
1987-02-21
|
4KB
|
117 lines
* PAYBILLS
* PROCESS ACCOUNTS PAYABLE FILE AND UPDATE EXPENSE AND MISC. ACCOUNTS
SET HEADING OFF
SET SAFETY OFF
SET STATUS OFF
CLEAR
CLEAR ALL
SET TALK OFF
SET BELL OFF
* SET UP A STRING OF 80 BLANKS
STORE SPACE(80) TO BLANK
@ 1,22 SAY "SMITH'S BIKEWORKS INFORMATION SYSTEM"
@ 3,19 SAY ">> Accounting System Bill Payer Program <<"
@ 5,29 SAY "Today's Date: "
?? DATE()
STORE "ALL " TO ACCOUNT
STORE "01/01/00" TO PAYDATE
STORE "ALL PAYEES " TO PAYTO
@ 9,1 SAY "Process PAYABLES for account number " GET ACCOUNT
@ 11,1 SAY "Examine only bills DUE AFTER " GET PAYDATE
STORE CTOD(PAYDATE) TO PAYDATE
@ 13,1 SAY "Examine only bills FROM " GET PAYTO
STORE " " TO DUMMY
@ 21,1 SAY ;
"REPLACE VALUES AT CURSOR, OR JUST PRESS ENTER IF CURRENT DESCRIPTION"
@ 22,1 SAY ;
"IS O.K. 'M' HERE RETURNS TO MENU, ANY OTHER KEY STARTS THE PROGRAM =>";
GET DUMMY
READ
STORE UPPER(DUMMY) TO DUMMY
IF DUMMY="M"
RETURN
ENDIF
* OPEN PAYABLES FILE
USE PAYFILE INDEX PFACTNO
SET INDEX TO PFACTNO
*OPEN LEDGER
SELECT B
USE ACCTCHRT INDEX ACCOUNT
SET INDEX TO ACCOUNT
* EXAMINE BILLS SELECTING RECORDS AS SPECIFIED BY DEFAULTS OR SCREEN INPUTS
SELECT A
GO TOP
STORE " " TO ACTION
DO WHILE ACTION<>"M"
IF (ACCT_NUM=VAL(ACCOUNT).OR.ACCOUNT="ALL").AND.(DATE_DUE>PAYDATE) ;
.AND..NOT.DELETE().AND.(PAYTO="ALL PAYEES".OR.PAYEE=PAYTO)
STORE 7 TO COUNT
DO WHILE COUNT<=23
@ COUNT,0 SAY BLANK
STORE COUNT+1 TO COUNT
ENDDO
* DISPLAY PAYABLE DATA, THEN INPUT CHECK INFORMATION
STORE " " TO CHECKNO
STORE 0.00 TO AMNTPD
STORE " " TO ACTION
STORE DATE() TO DATEPD
@ 9,0 SAY " "
?? "Account Number :",A->ACCT_NUM," Date Recorded :",A->DATE_RECD
?
? " Payee :", A->PAYEE, " $",A->AMOUNT," Last Update :",;
A->LAST_UPDT
?
? " Ref :",A->REFERENCE
@ 15,1 SAY "Paid With Check Number " GET CHECKNO
@ 15,34 SAY "Amount Paid " GET AMNTPD
@ 15,60 SAY "Date Paid " GET DATEPD
@ 18,1 SAY;
"TYPE REQUESTED DATA AT CURSOR. PRESS ENTER KEY TO MOVE TO NEXT"
@ 19,1 SAY "FIELD. TYPE 'P' TO POST, 'M' FOR MENU, ANYTHING ELSE"+;
" TO SKIP ENTRY => " GET ACTION
READ
STORE UPPER(ACTION) TO ACTION
* POST TRANSACTION TO LEDGER IF INPUT IS "P"
IF ACTION="P"
SELECT B
STORE STR(A->ACCT_NUM,6,2) TO TEMP
FIND &TEMP
IF (EOF() .OR. BOF())
STORE " " TO ACTION
@ 22,1 SAY ;
"*** ERROR: THERE IS NO LEDGER ACCOUNT WITH THIS ACCOUNT NUMBER"
@ 23,1 SAY " PRESS ANY KEY TO CONTINUE " GET ACTION
READ
* LEDGER RECORD FOUND, SO DO UPDATE
ELSE
* CONSTRUCT MONTHn VARIABLE NAME
STORE DTOC(DATEPD) TO DATEPAID
IF VAL(SUBSTR(DATEPAID,1,2))>9
STORE SUBSTR(DATEPAID,1,2) TO MONTH
ELSE
STORE SUBSTR(DATEPAID,2,1) TO MONTH
ENDIF
STORE "MONTH"+MONTH TO MONTH
REPLACE ACCT_YTD WITH B->ACCT_YTD+AMNTPD,&MONTH WITH ;
&MONTH+AMNTPD,LAST_UPDT WITH DATE()
* UPDATE DATE, AMOUNT, CHECK NUMBER IN TRANSACTION, THEN FLAG AS DELETED
SELECT A
STORE DATE() TO DATEPD
REPLACE DATE_PAID WITH DATEPD, CHECK_NUM WITH CHECKNO,;
AMOUNT WITH A->AMOUNT-AMNTPD
SELECT A
DELETE
ENDIF
ENDIF
ENDIF
* ADVANCE TO NEXT REC, CHECK TO SEE IF AT END
SELECT A
STORE RECNO() TO RECNOW
SKIP 1
IF EOF()
STORE "M" TO ACTION
ENDIF
ENDDO
CLEAR
RETURN